//AC
#include <ios>
#include <iostream>
using namespace std;

const int MAX_N=2e3+5;
int n,m;
int w[MAX_N];
int dp[MAX_N],g[MAX_N];

int main(){
    ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        cin>>w[i];
    }
    dp[0]=1;//背包容量为0也是一种选择方案
    for(int i=1;i<=n;i++){
        for(int j=m;j>=w[i];j--){
            dp[j]=(dp[j]+dp[j-w[i]])%10;
        }
    }
    for(int i=1;i<=n;i++){
        g[0]=1;//背包容量为0也是一种选择方案
        for(int j=1;j<=m;j++){
            if(j<w[i])g[j]=dp[j]%10;
            else g[j]=(dp[j]-g[j-w[i]]+10)%10;//不使用物品i把j容量填满的方案数 = 把j容量填满的方案总数 - (假设使用i个物品时的方案数=容量为j-w[i]时不使用i个物品的总数)
            cout<<g[j];
        }
        cout<<endl;
    }
}